VPCフローログの各種フィールドの意味をまとめてみた
はじめに
こんにちは。AWS事業本部コンサルティング部に所属している和田響です。
今回はVPCフローログの各種フィールドの意味についてまとめてみました。
VPCフローログは文量が多いのでついつい目を背けてしまいがちですが、一つ一つの意味を理解することで活用の仕方がわかってきます。
先にまとめ
フィールド | 意味 | 備考 |
---|---|---|
version | フローログのバージョン | デフォルトの形式だと2 |
account-id | AWSアカウントID | VPCエンドポイントやNLBなどunknown になる場合も |
interface-id | ネットワークインターフェースのID | |
srcaddr | 送信元のアドレス | |
dstaddr | 送信先のアドレス | |
srcport | 送信元のポート番号 | |
dstport | 送信先のポート番号 | |
protocol | IANAプロトコル番号 | IPv4なら4 、TCPなら6 、IPv6なら41 ...etc |
packets | パケット数 | |
bytes | バイト数 | |
start | 通信開始時間 | UNIX秒で表示 |
end | 通信終了時間 | UNIX秒で表示 |
action | 承認された場合にはACCEPT 拒否された場合にはREJECT |
|
log-status | 正常に生成されたらOK トラフィックがなかったら NODATA ログの生成がスキップされたら SKIPDATA |
VPCフローログとは?
VPC フローログは、VPC のネットワークインターフェイスとの間で行き来する IP トラフィックに関する情報をキャプチャできるようにする機能です。フローログデータは、Amazon CloudWatch Logs、Amazon S3、または Amazon Data Firehose の場所に発行できます。フローログを作成したら、設定したロググループ、バケット、または配信ストリームのフローログレコードを取得して表示できます。
VPCフローログの中身
VPCフローログな中身をみると以下のようなフォーマットでログが表示されています。
何も知らない状態でログをみても、何が何だかわかりませんね。
version account-id interface-id srcaddr dstaddr srcport dstport protocol packets bytes start end action log-status 2 123456789012 eni-abcdefghijk xx.xx.xx.xx xx.xx.xx.xx 22 31587 6 4 333 1708481969 1708481969 ACCEPT OK 2 123456789012 eni-abcdefghijk xx.xx.xx.xx xx.xx.xx.xx 28525 27868 6 1 44 1708481970 1708481970 REJECT OK
本題とはそれますが、こちらのブログをもとにスプレッドシートでみてみると少しだけみやすくなります。
各種フィールドの意味
先ほどのログの1行目に表示されているのがフィールドと呼ばれるものです。
VPCフローログはデフォルトの形式では、以下の14個のフィールドで構成されています。
version
VPCフローログのバージョンを意味します。
デフォルトの形式を使用する場合、バージョンは2になります。
VPCフローログの形式をカスタム形式で作成すると、それに対応したバージョンが表示されます。
account-id
12桁の数字のAWSアカウントIDが表示されます。
トラフィックが記録されるソースネットワークインターフェイスの所有者のAWSアカウントIDを示すので、
VPCエンドポイントやNetwork Load Balancerなど、AWSサービスによって作成されている場合unknown
が表示されることがあります。
interface-id
トラフィックが記録されるネットワークインターフェイスのIDeni-xxxxxxxxx
が表示されます。
srcaddr
受信トラフィックの送信元アドレスか、ネットワークインターフェイスにおける送信トラフィックのネットワークインターフェイスのIPv4またはIPv6アドレスが表示されます。
dstaddr
送信トラフィックの送信先アドレスか、ネットワークインターフェイスにおける受信トラフィックのネットワークインターフェイスのIPv4またはIPv6アドレスが表示されます。
srcport
トラフィックの送信元ポートが表示されます。
dstport
トラフィックの送信先ポートが表示されます。
protocol
トラフィックのIANAプロトコル番号が表示されます。
※IANAプロトコル番号とは、インターネット割り当て番号機構(IANA)によって割り当てられるプロトコルの識別番号です。
代表的なものでは、IPv4には4
、TCPには6
、IPv6には41
が割り当てられています。
packets
フロー中に転送されたパケットの数が表示されます。
bytes
フロー中に転送されたバイト数が表示されます。
start
集約間隔内にフローの最初のパケットが受信された時間がUNIX秒で表示されます。
UNIX秒で表示されるため、日本時間に直すためにはエクセルのDATEVALUEのような関数が役に立ちます。
end
集約間隔内にフローの最後のパケットが受信された時間がUNIX秒で表示されます。
UNIX秒で表示されるため、日本時間に直すためにはエクセルのDATEVALUEのような関数が役に立ちます。
action
トラフィックが承認された場合にはACCEPT
が表示されます。
トラフィックが拒否された場合にはREJECT
が表示されます。
log-status
トラフィックがありログが正常に生成された場合OK
が表示されます。
トラフィックがなかった場合NODATA
が表示されます。
トラフィックがあったがログの生成がスキップされた場合SKIPDATA
が表示されます。
簡単に表にまとめました。
フィールド | 意味 | 備考 |
---|---|---|
version | フローログのバージョン | デフォルトの形式だと2 |
account-id | AWSアカウントID | VPCエンドポイントやNLBなどunknown になる場合も |
interface-id | ネットワークインターフェースのID | |
srcaddr | 送信元のアドレス | |
dstaddr | 送信先のアドレス | |
srcport | 送信元のポート番号 | |
dstport | 送信先のポート番号 | |
protocol | IANAプロトコル番号 | IPv4なら4 、TCPなら6 、IPv6なら41 ...etc |
packets | パケット数 | |
bytes | バイト数 | |
start | 通信開始時間 | UNIX秒で表示 |
end | 通信終了時間 | UNIX秒で表示 |
action | 承認された場合にはACCEPT 拒否された場合にはREJECT |
|
log-status | 正常に生成されたらOK トラフィックがなかったら NODATA ログの生成がスキップされたら SKIPDATA |
具体的な内容は公式ドキュメントを参照ください。
最後に
改めてVPCフローログを見てみると、先ほどよりすんなり頭に入ってきませんか?
version account-id interface-id srcaddr dstaddr srcport dstport protocol packets bytes start end action log-status 2 123456789012 eni-abcdefghijk xx.xx.xx.xx xx.xx.xx.xx 22 31587 6 4 333 1708481969 1708481969 ACCEPT OK 2 123456789012 eni-abcdefghijk xx.xx.xx.xx xx.xx.xx.xx 28525 27868 6 1 44 1708481970 1708481970 REJECT OK
この記事がどなたかのお役に立てれば幸いです。